/**
 * Created by YS on 2017/12/26.
 */
var express = require('express');
var router = express.Router();
var User = require('../models/User');

var responseData;                           // 统一返回格式

router.use(function (req, res, next) {
    responseData = {
        code: 0,                            // 错误码
        message: ''                         // 错误信息
    }
    next();
});

/*用户注册
* 注册逻辑
* 1.用户名不为空
* 2.密码不为空
* 3.俩次输入密码必须一致
*
* 1.用户是否已经被注册
*       数据库查询*/

// 接收方式、路径与对应的 ajax 相同
router.post('/user/register', function (req, res, next) {
    // console.log(req.body)
    var username = req.body.username;
    var password = req.body.password;
    var repassword = req.body.repassword;

    // 用户名是否为空
    if(username==''){
        responseData.code=1;
        responseData.message='用户名不能为空';
        res.json(responseData);
        return;
    }

    // 密码不能为空
    if(password==''){
        responseData.code=2;
        responseData.message='密码不能为空'
        res.json(responseData);                         // 返回给前端
        return;
    }

    // 两次输入密码必须一致
    if(password!=repassword){
        responseData.code=3;
        responseData.message='两次输入密码不一致'
        res.json(responseData);
        return;
    }


    // 用户名是否被注册，如果数据库中已经存在和我们要注册的用户名同名的数据，表示该用户已经被注册
    User.findOne({
        username: username
    }).then(function(userInfo){
        // console.log(userInfo);        // 查到的用户数据
        if(userInfo){                    // 如果查到了这个信息
            responseData.code = 4;
            responseData.message = '用户名已经被注册';
            res.json(responseData);
            return;
        }

        // 用户是新用户时,保存到数据库中
        var user = new User({
            username: username,
            password: password
        });
        return user.save();
    }).then(function(newUserInfo){
        console.log(newUserInfo);

        responseData.message = '注册成功'
        res.json(responseData);
    })

});

module.exports = router;